/*
 * @copyright 2010 Gerald Jacobson
 * @license GNU General Public License
 * 
 * This file is part of My Quick Rules.
 *
 * My Quick Rules is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * My Quick Rules is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with My Quick Rules.  If not, see <http://www.gnu.org/licenses/>.
 */
package org.amphiprion.myquickrules.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

/**
 * @author Amphiprion
 * 
 */
public class TextEntry implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String lng = Locale.getDefault().getLanguage();

	public String text;
	public float size;

	public boolean bold;

	public float spacing;

	public String color;

	private List<LocalizedText> localizedTexts = new ArrayList<LocalizedText>();

	public void addLocalizedText(LocalizedText lt) {
		localizedTexts.add(lt);
		computeText();
	}

	public void removeLocalizedText(LocalizedText lt) {
		localizedTexts.remove(lt);
		computeText();
	}

	public void computeText() {
		text = null;
		for (LocalizedText lt : localizedTexts) {
			if (lng.equals(lt.local)) {
				text = lt.text;
				break;
			} else if ("en".equals(lt.local)) {
				text = lt.text;
			}
		}
	}

	public int getLocalisedTextCount() {
		return localizedTexts.size();
	}

	public LocalizedText getLocalizedTextAt(int index) {
		return localizedTexts.get(index);
	}

	/**
	 * @return
	 */
	public StringBuffer toXml() {
		StringBuffer sb = new StringBuffer();
		sb.append("<text size=\"");
		sb.append(size);
		sb.append("\"");
		sb.append(" bold=\"");
		sb.append(bold);
		sb.append("\"");
		sb.append(" spacing=\"");
		sb.append(spacing);
		sb.append("\"");
		if (color != null) {
			sb.append(" color=\"");
			sb.append(color);
			sb.append("\"");
		}
		sb.append(">\n");
		if (localizedTexts != null) {
			for (LocalizedText lt : localizedTexts) {
				sb.append(lt.toXml());
			}
		}
		sb.append("</text>\n");
		return sb;
	}
}
